home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1995 May / cd Ware (Juegos) Epimundo.iso / WIN / UT_SYSTM / INITYME.ZIP / INITYME.HLP < prev    next >
Encoding:
Text File  |  1994-11-17  |  18.5 KB  |  695 lines

  1. Computer Tyme IniTyme * Copyright 1993-94 by Marc Perkel
  2. All Rights Reserved * Version 2.44 * Release Date: 11-17-94
  3.  
  4. Computer Tyme * 411 North Sherman, Suite 300 * Springfield Mo. 65802
  5. (417) 866-1222 Voice * (800) 548-5353 Sales * (417) 866-1665 Fax/BBS
  6.  
  7. * We're moving! - Starting 1996 (maybe) - Computer Tyme, Fair Grove Mo. 65648
  8.  
  9. IniTyme is a Windows *.INI file manipulator. It is designed to assist the
  10. network administrator who has to maintain INI files for many users.
  11.  
  12. USAGE: INITYME ChangeFile IniFile [/Q]
  13.        or MARXMENU INITYME ChangeFile IniFile
  14.  
  15. Note: If you are running IniTyme from MarxMenu rather that INITYME.EXE,
  16. then all references to running INITYME are really MARXMENU INITYME.
  17.  
  18. The /Q switch puts IniTyme in Quiet mode. No messages to the screen are
  19. displayed.
  20.  
  21. Example:
  22.   INITYME CHANGE.INI SYSTEM.INI
  23.  
  24. In the above example CHANGE.INI is the control file that will control the
  25. changes that will be written to the target file SYSTEM.INI. You can also
  26. invoke IniTyme by passing only one parameter. If you pass only one
  27. parameter, then the extension DEF is assumed for the name of the change
  28. file.
  29.  
  30. Example:
  31.   INITYME SYSTEM.INI
  32.   (SYSTEM.DEF is assumed)
  33.  
  34. The ChangeFile is formatted like an INI file. A sample changefile might
  35. look like this:
  36.  
  37.     ; CHANGE.INI : A sample changefile for the IniTyme Program.
  38.  
  39.     subst 'C:\WINDOWS\PM4\' 'W:\PM4'
  40.  
  41.     [boot]
  42.     del sound.drv
  43.  
  44.     del [keyboard]
  45.  
  46.     [386Enh]
  47.     Paging=1
  48.     Device=mydev.386
  49.     foo=bar
  50.     ADD TestMode=3
  51.     CHANGE mydevice=mydriver.386
  52.  
  53.     [fonts]
  54.     subst 'V:\' 'P:\WINDOWS\'
  55.  
  56. Any line that starts with the semicolon is a comment and will not be
  57. processed.
  58.  
  59. Adding and updating lines is done by listing the new lines as you wish them
  60. to appear. In the example there is a line in the [386ENH] group that reads
  61. PAGING=1. If the target INI files does not contain a [386ENH] group it will
  62. be created. The default mode is - change it if it's there, add it if
  63. it's not.
  64.  
  65. If that group does not contain a PAGING=1 line it will be added to the
  66. group. If a line in the [386ENH] group already exists that sets PAGING=2 it
  67. will be changed to PAGING=1. The word DEVICE= is a special case if it is
  68. found in the [386Enh] section and it is automatically added unless the whole
  69. line matches something that's already there.
  70.  
  71.  
  72. ADD
  73. ---
  74.  
  75. Using the word ADD in front of the line causes the line to be added if it
  76. isn't already there, but not changed if it is already there. (Add but
  77. don't change.)
  78.  
  79.  
  80. CHANGE
  81. ------
  82.  
  83. Using the word CHANGE in front of the line causes the line to be changed if
  84. it is there, but not added if it isn't there. (Change but don't add.)
  85.  
  86.  
  87. DEL
  88. ---
  89.  
  90. Using the word DEL in front of the line causes a matching line to be deleted
  91. from the INI file. The DEL command can also be used to remove entire groups
  92. as illustrated in the example line DEL [KEYBOARD].
  93.  
  94.  
  95. ADDITEM
  96. -------
  97.  
  98. When using commands like Run=Prog1 Prog2 Prog3 you might want to add more
  99. items to the list. If you change file contains: "AddItem Run=Prog4 Prog5"
  100. then the result will be "Run=Prog1 Prog2 Prog3 Prog4 Prog5"
  101.  
  102.  
  103. DELITEM
  104. -------
  105.  
  106. Similar to AddItem, DelItem removes items form a list. If your INI file
  107. contains "Run=Prog1 Prog2 Prog3 Prog4" and your change INI file contains
  108. "DelItem Run=Prog2 Prog4" then the result will be: "Run=Prog1 Prog3"
  109.  
  110.  
  111. ADDVALUE
  112. --------
  113. If a line is found, AddValue will add (or subtract for negative values)
  114. the amount of the line in the change file.
  115.  
  116.  Example:
  117.     Original file has: NumValue=9
  118.     Change file has: AddValue NumValue=3
  119.     Result file will have: NumValue=12
  120.  
  121.  
  122. AFTER
  123. -----
  124.  
  125. If you use the command AFTER <line> then the next item that is added or
  126. changed will be put after the line you specified. If the line you
  127. specified isn't found then it is added to the end of the section. The
  128. after command can also be used to move a line from one place to another
  129. within the same section.
  130.  
  131.  Example:
  132.     After Run
  133.     Foo=Bar
  134.  
  135.  
  136. BEFORE
  137. ------
  138. Before is just like after except it adds the line before the specified
  139. line.
  140.  
  141.  
  142. FIRST
  143. -----
  144.  
  145. If you use the word first, then the next item added will be first in the
  146. section.
  147.  
  148.  
  149. SUBST
  150. -----
  151.  
  152. The SUBST command is used to replace strings within an INI file. It can be
  153. used in two fashions either globally throughout the file or locally within
  154. a group. In the above example it is used both ways.
  155.  
  156. Putting the line SUBST 'C:\WINDOWS\PM4\' 'W:\PM4' before the first group
  157. header will cause the path string 'C:\WINDOWS\PM4\' to be globally replaced
  158. throughout the file with 'W:\PM4'. In the last line of the above example the
  159. SUBST 'V:\' 'P:\WINDOWS\' command will replace only those strings that match
  160. in the group [fonts].
  161.  
  162. The SUBST command also supports references to environment variables.
  163. Thus F:\HOME\%USER%\WINDOWS becomes F:\HOME\MARC\WINDOWS.
  164.  
  165. INITYME also has special provisions for handling the [GROUPS] section on the
  166. PROGMAN.INI. This section numbers the groups that are referenced. INITYME
  167. will scan the groups listed and determine the first available group number
  168. when it is adding to the [GROUPS] group.
  169.  
  170. To illustrate, if the PROGMAN.INI files group section reads as follows:
  171.  
  172.     [Groups]
  173.     Group1=H:\WINDOWS\MAIN.GRP
  174.     Group2=H:\WINDOWS\ACCESSOR.GRP
  175.     Group4=H:\WINDOWS\STARTUP.GRP
  176.     Group5=H:\WINDOWS\BP7.GRP
  177.     Group6=H:\WINDOWS\ALDUS.GRP
  178.     Group7=F:\HOME\MARC\WINDOWS\WORDFORW.GRP
  179.     Group8=F:\HOME\MARC\WINDOWS\MICROSOF.GRP
  180.     Group3=F:\HOME\MARC\WINDOWS\EDOS.GRP
  181.  
  182.  
  183. and your ChangeFile contains:
  184.  
  185.     [Groups]
  186.     DEL group=BP7.GRP
  187.     Group=MAIN.GRP
  188.     Group=MYGROUP.GRP
  189.     DEL group=EDOS.GRP
  190.     Group=Z:\SYSTEM\TEST.GRP
  191.     Group=MASTER.GRP
  192.  
  193. After executing IniTyme your PROGMAN.INI group section would now read:
  194.  
  195.     [Groups]
  196.     Group1=MAIN.GRP
  197.     Group2=H:\WINDOWS\ACCESSOR.GRP
  198.     Group4=H:\WINDOWS\STARTUP.GRP
  199.     Group6=H:\WINDOWS\ALDUS.GRP
  200.     Group7=F:\HOME\MARC\WINDOWS\WORDFORW.GRP
  201.     Group8=F:\HOME\MARC\WINDOWS\MICROSOF.GRP
  202.     Group5=MYGROUP.GRP
  203.     Group3=Z:\SYSTEM\TEST.GRP
  204.     Group9=MASTER.GRP
  205.  
  206.  
  207. DUPLICATES
  208. ----------
  209. Most key words in INI files are unique, with the notable exception of
  210. the Device= keyword in the [386enh] section. IniTyme allows you to
  211. specify other keywords that are allowed to be duplicated. Duplicates are
  212. specified at the top of the file before any sections are defined.
  213.  
  214.  Example:
  215.     Duplicates Device=[386enh]   ;default
  216.     Duplicates Dups=[Section]
  217.  
  218. You can also specify duplicates for all sections by specifying the
  219. section name [*].
  220.  
  221.  Example:
  222.     Duplicates Dups=[*]
  223.  
  224.  
  225. CONDITIONALS
  226. ------------
  227.  
  228. IniTyme supports conditional changes. If the condition is met then the
  229. changes are made. If statements can be nested.
  230.  
  231.  if [condition]
  232.     Device=mydev.386
  233.     add foo=bar
  234.  else
  235.     Device=otherdev.386
  236.     change foo=notbar
  237.  endif
  238.  
  239.  
  240. CONDITIONAL LIBRARY
  241. -------------------
  242.  
  243. And
  244. Returns the logical And of two values.
  245.  
  246.  Example:
  247.    if InGroup 'EveryOne' and InGroup 'Accounting'
  248.  
  249.  
  250. Or
  251. Returns the logical Or of two values.
  252.  
  253.  Example:
  254.    if InGroup 'EveryOne' or InGroup 'Accounting'
  255.  
  256.  
  257. Not
  258. Returns the logical Not of a value.
  259.  
  260.  Example:
  261.    if Not InGroup 'EveryOne'
  262.  
  263.  
  264. +
  265. Adds two values.
  266.  
  267.  Example:
  268.    if 'A' + 'B' = 'AB'
  269.  
  270.  
  271. -
  272. Subtracts two values.
  273.  
  274.  Example:
  275.    if 5 - 3 < 4
  276.  
  277.  
  278. =
  279. Compares two values and returns true if they are equal.
  280.  
  281.  Example:
  282.     if 2 + 2 = 4
  283.  
  284.  
  285. <>
  286. Compares two values and returns true if they are not equal.
  287.  
  288.  Example:
  289.     if 2 + 2 <> 5
  290.  
  291.  
  292. >
  293. Compares two values and returns true if the first value is greater than the
  294. second value.
  295.  
  296.  Example:
  297.     if 'D' > 'C'
  298.  
  299.  
  300. <
  301. Compares two values and returns true if the first value is less than the
  302. second value.
  303.  
  304.  Example:
  305.     if 'C' < 'D'
  306.  
  307.  
  308. >=
  309. Compares two values and returns true if the first value is greater than or
  310. equal to the second value.
  311.  
  312.  Example:
  313.     if 'D' >= 'C'
  314.  
  315.  
  316. <=
  317. Compares two values and returns true if the first value is less than or
  318. equal to the second value.
  319.  
  320.  Example:
  321.     if 'C' <= 'D'
  322.  
  323.  
  324. ( )
  325. Parens begin and end logical grouping for interpretation.
  326.  
  327.  Example:
  328.     if ('A' < 'B') and (9 > (5 + 3))
  329.  
  330.  
  331. ReadEnv (Environment String)
  332. Returns the value of an environment variable.
  333.  
  334.  Example:
  335.    if ReadEnv 'ENHANCED' = 'Y'
  336.  
  337.  
  338. ValueOf
  339. Return the value of an element in the current section.
  340.  
  341.  Example:
  342.     if ValueOf 'PagingDrive' <> 'H'
  343.        PagingDrive=C
  344.     endif
  345.  
  346.  
  347. UpperCase
  348. Returns the UpperCase of a string.
  349.  
  350.  Example:
  351.     if UpperCase ReadEnv 'ENHANCED' = 'Y'
  352.  
  353.  
  354. CPU
  355. Returns the class of CPU chip you are running.
  356.  
  357.  Example:
  358.     if CPU >= 3
  359.  
  360.  
  361. MathChip
  362. Returns true if you have a math coprocessor.
  363.  
  364.  Example:
  365.     if MathChip
  366.  
  367.  
  368. Display
  369. Returns the type of video card. Types returned are HERC, CGA, EGA, VGA.
  370.  
  371.  Example:
  372.     if Display = 'VGA'
  373.  
  374.  
  375.  
  376. InGroup (Group)
  377. Returns True if user is in the Novell group.
  378.  
  379.  Example:
  380.    if InGroup 'EveryOne'
  381.  
  382. If you are not running on Novell, you can set an environment variable
  383. list the groups there.
  384.  
  385. Set Groups=Everyone,Accounting,Sales
  386.  
  387.  
  388. InMem (TSR)
  389. Returns True if the TSR is in memory. It can also detect the names of
  390. pending batch files that are running.
  391.  
  392.  Example:
  393.    if InMem 'IPXODI'
  394.    if InMem 'AUTOEXEC'
  395.  
  396.  
  397. VlmLoaded
  398. Returns True if the Novell VLM shell is loaded.
  399.  
  400.  Example:
  401.    if VlmLoaded
  402.  
  403.  
  404. Station
  405. Returns the workstation address on a Novell network or the value set in
  406. the environment variable STATION=.
  407.  
  408.  Example:
  409.     if Station = '250:33333'
  410.  
  411.  
  412. UserName
  413. Returns the Novell login name of the user, or the value set in the
  414. environment variable USER=.
  415.  
  416.  Example:
  417.     if UserName = 'Marc'
  418.  
  419.  
  420. DayOfWeek
  421. Returns the first three letters of the day of the week.
  422.  
  423.  Example:
  424.     if DayOfWeek = 'TUE'
  425.  
  426.  
  427. Month
  428. Returns the first three letters of the Month.
  429.  
  430.  Example:
  431.     if Month = 'AUG'
  432.  
  433.  
  434. INIMAN COMPATIBILITY
  435. --------------------
  436. In order to make IniTyme more compatible with the popular IniMan program
  437. from Saber Software, I've added several new conditionals and some syntax
  438. enhancements. Because of differences in the design of these two
  439. programs, IniTyme is not 100% compatible with IniMan's DEF files. But,
  440. these additions are a step in that direction, and makes the transition
  441. significantly easier.
  442.  
  443. IniTyme will search for DEF files in the current directory and the
  444. directory pointed to by the S_CONFIG environment variable.
  445.  
  446. Unlike IniTyme, IniMan uses ";*" as a keyword for it's conditionals.
  447. IniTyme supports ;* for compatibility, but when given the choice,
  448. IniTyme's more powerful IF should be used. The ;* works like the word
  449. IF, but it uses the rules of IniMan instead. IniMan's ;* and IniTyme's
  450. IF statements can be freely mixed. IF statements can be nested.
  451.  
  452. However, IniTyme supports only the jumping logic of IniMan and not what
  453. happens inside the jump. Because of differences in the way these two
  454. programs work, it would be too confusing to the end user to try to
  455. support both forms of logic. Changes to your DEF files may be required.
  456. But, with all the new features here, you're going to want to change them
  457. anyway.
  458.  
  459. IniMan conditionals don't require quotes around strings, so quotes can
  460. be used optionally.
  461.  
  462. If multiple conditions are specified without the use of AND, OR, or XOR;
  463. then AND is assumed.
  464.  
  465.  Example:
  466.     ;*Groups=Accounting,Sales Users=Marc,Vicki
  467.  
  468. In the above example, the condition is True only if both conditions are
  469. met. If you want it to be True if either condition is met, then you will
  470. do the following:
  471.  
  472.  Example:
  473.     ;*Groups=Accounting,Sales or Users=Marc,Vicki
  474.  
  475.  
  476. IniTyme also supports the IniMan Not symbol "!". If "!" is placed in
  477. front of a member of the list, it means "and not this". The following
  478. example means if the user is in groups Accounting or Sales and the user
  479. isn't Marc.
  480.  
  481.  Example:
  482.     if Groups=Accounting,Sales  Users=!Marc
  483.  
  484. Unlike IniMan, the not symbol can be mixed freely.
  485.  
  486.  Example:
  487.     if Groups=Accounting,!Sales
  488.  
  489.  
  490. INIMAN CONDITIONALS
  491. -----------------
  492. IniMan conditionals can be freely mixed with IniTyme conditionals.
  493.  
  494.  Example:
  495.     if Groups=Accounting,Payroll and (DayOfWeek = 'FRI')
  496.  
  497.  
  498. Groups=Group1,Group2,Group3
  499. Returns true if the user is a member of any of the listed groups.
  500.  
  501.  Example:
  502.     if Groups=Accounting,Sales
  503.  
  504.  
  505. Users=User1,User2,User3
  506. Returns true if the user is one of the listed users.
  507.  
  508.  Example:
  509.     if Users=Marc,Vicki,Pete,Phil,Grace
  510.  
  511.  
  512. Hardware=VGA
  513. Returns true if one of the listed hardware pieces is present.
  514.  
  515.  Example:
  516.     if Hardware=VGA,EGA,Math,!8086
  517.  
  518.  
  519. Stations=Station1,Station2,Station3
  520. Returns true if the station is one of the listed stations. The
  521. comparison is based on partial string compares so that you could match a
  522. range of station numbers.
  523.  
  524.  Example:
  525.     if Stations=0c3456,345,0a4b337
  526.  
  527.  
  528. Network=
  529. Returns true if user is on the specified network.
  530.  
  531.  Example:
  532.     if NetWork=Novell
  533.  
  534.  
  535. BACKUPS
  536. -------
  537.  
  538. Whenever INITYME runs it creates a backup of the original file with a *.BNI
  539. extension. If you decide you don't like the changes you've made you can
  540. execute a one generation restore with the command:
  541.  
  542.      INITYME RESTORE SYSTEM.INI
  543.  
  544. This will delete the current SYSTEM.INI file and rename the SYSTEM.BNI file
  545. to SYSTEM.INI. If a matching BNI file is not present then the restore
  546. command does not do anything.
  547.  
  548. If by chance you are in a situation where murphy has tried to make your day
  549. really bad and you've screwed up your INI files royally, be sure to remember
  550. the SALVAGE command from netware. But nothing, not even salvage, is an
  551. acceptable substitute for a current set of backups. One suggestion might be
  552. to use PKZIP to ZIP up a set of your pre-modified INI files. This gives you
  553. the opportunity to play without risk. Nothing beats backups!
  554.  
  555.  
  556. BACKUP NAME
  557. -----------
  558.  
  559. By default, the backup extension for INI files is BNI. Hoewever, if you
  560. want to change this, use can use the BackupName command in the change
  561. file as follows:
  562.  
  563.  Example:
  564.    BackupName 'MYBAK.TXT'
  565.  
  566. If you want to change only the extension of the backups, then start the
  567. BackupName with '*.' as follows:
  568.  
  569.  Example:
  570.    BackupName '*.XXX'
  571.  
  572.  
  573. NOBACKUP
  574. --------
  575.  
  576. The NoBackup command is used if you don't want to create the BNI backup
  577. file. This will save disk space, however, you lose the safety of having
  578. the ability to undo what you just did. The BNI file is actually created
  579. and then deleted, so if you have Novell's salvage of and UnDelete
  580. command you can get the BNI file back.
  581.  
  582.  
  583. PIPING FILENAMES
  584. ----------------
  585.  
  586. IniTyme can be used to update many INI file in bulk by creating a ListFile
  587. contains a list of INI files. Then simply provide IniTyme with the filename
  588. of the list file instead of a specific INI file. The syntax of a list file
  589. should be something like:
  590.  
  591.      \home\phil\windows\system.ini
  592.      \home\marc\windows\system.ini
  593.      ...etc...
  594.  
  595. You can also pipe a list of files to IniTyme as follows:
  596.  
  597.   WHEREIS SYSTEM.INI|INITYME CHANGE.INI
  598.  
  599. File name references in INITYME can include references to environment
  600. variables. Thus \HOME\%USER%\WINDOWS\SYSTEM.INI is a valid filename if the
  601. environment variable USER is set.
  602.  
  603.  
  604. LOGGING CHANGES
  605. ---------------
  606.  
  607. If you want to create a log file of the changes that were made to the file
  608. add the command:
  609.  
  610.   LOG [FileName]
  611.  
  612. in your CHANGE.INI file, before the first section header, and INITYME
  613. will log the changes in the FileName you specify. If the FileName isn't
  614. specified the default name is your INI file name with a LOG extension.
  615.  
  616. If you want the log to append to and existing log file, use the command:
  617.  
  618.   APPENDLOG [FileName]
  619.  
  620.  
  621. YAK MODE
  622. --------
  623. If Yak is on, all changes will be displayed on the screen. To turn Yak
  624. on, add a line with the word "Yak" before the first section.
  625.  
  626.  
  627. TEST MODE
  628. ---------
  629.  
  630. If you want to test a change file without changing the original INI file
  631. then add the word TestMode to the CHANGE.INI file before the first section
  632. header. In test mode the changes are written to the BNI file and the INI
  633. file is left untouched. You can then look at the BNI file to see the
  634. changes.
  635.  
  636.  
  637. COMPANION PROGRAMS INIDIF GRPTYME
  638. ---------------------------------
  639.  
  640. Included with INITYME is INIDIF.
  641.  
  642. INIDIF compares two INI files and produces a third file that contains the
  643. differences between the two INI files. This allows you to install a new
  644. windows program and compare the changed INI file to the original INI file.
  645. The change file can then be used with INITYME to apply the same changes to
  646. other INI files of other users on a network.
  647.  
  648.  USAGE: INIDIF NewFile OldFile ChangeFile
  649.  
  650.  Example:
  651.    INIDIF SYSTEM.INI SYSTEM.OLD SYSTEM.CHG
  652.  
  653. GrpTyme is a DOS utility to create and modify Microsoft Windows GRP
  654. files used by Program Manager. It allows network managers to add icons,
  655. remove icons, or modify icon information inside of Program Manager's
  656. group files. Network managers can also create new groups from a text
  657. file that has a format similar to a Windows INI file. On a network,
  658. GrpTyme can help automate the updating of thousands of GRP files in a
  659. single process. If you want to add a new program item to the desktop of
  660. hundreds of network Windows users, it would take a serious amount of
  661. work. GrpTyme can do in minutes what would normally take days to
  662. accomplish.
  663.  
  664. GrpTyme also has the ability to look into existing GRP files and read
  665. the information into a GNI file. This file is a text file much like an
  666. INI file, and this file can me manipulated with IniTyme and then
  667. recompiled into a GRP file. GrpTyme is sold separately.
  668.  
  669.  
  670. WILL INITYME WORK ON BATCH FILES?
  671. ---------------------------------
  672. The short answer is NO. The reason is that INI files have a structure.
  673. There are headers and lines where something equals something. Batch and
  674. other configuration files have no rules, so changing them is a
  675. completely different concept.
  676.  
  677. However, due to demand from users and the need to continue to eat, I've
  678. written another program, BatZap, which does batch and other text based
  679. configuration files. BatZap is to batch files what IniTyme is to INI
  680. files. BatZap uses a script language with over 100 powerful commands. If
  681. you like IniTyme, you'll love BatZap!
  682.  
  683.  
  684. WE WANT YOUR INPUT
  685. ------------------
  686.  
  687. If you like this program and you can think of more features that it needs,
  688. give me a call and I will probably add them.
  689.  
  690. IniTyme is licensed for $95/fileserver.
  691.  
  692. IniTyme is written in the MarxMenu network system language. IniTyme is
  693. included free with the Network Survival Kit along with source code allowing
  694. you to add your own features to the program.
  695.